
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>vtmvg_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>vtmvg_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   SpiceDouble vtmvg_c ( const void          * v1,
                         const void          * matrix,
                         const void          * v2,
                         SpiceInt              nrow,
                         SpiceInt              ncol    )

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
    Multiply the transpose of a n-dimensional column vector,
    a nxm matrix, and a m-dimensional column vector.
</PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
    None.
</PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
    MATRIX
    VECTOR


</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
    VARIABLE  I/O  DESCRIPTION
    --------  ---  --------------------------------------------------
     v1        I   n-dimensional double precision column vector.
     matrix    I   nxm double precision matrix.
     v2        I   m-dimensional double porecision column vector.
     nrow      I   Number of rows in matrix (number of rows in v1.)
     ncol      I   Number of columns in matrix (number of rows in
                   v2.)

     The function returns the result of (v1**t * matrix * v2 ).
</PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
    v1         is an n-dimensional double precision vector.

    matrix     is an n x m double precision matrix.

    v2         is an m-dimensional double precision vector.

    nrow       is the number of rows in matrix.  this is also
               equivalent to the number of rows in the vector v1.

    ncol       is the number of columns in matrix. this is also
               equivalent to the number of rows in the vector v2.
</PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
    The function returns the double precision value of the equation
    (v1**t * matrix * v2 ).

    Notice that <b>vtmvg_c</b> is actually the dot product of the vector
    resulting from multiplying the transpose of V1 and MATRIX and the
    vector V2.
</PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
    None.
</PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
   Error free.
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
    None.
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
    This routine implements the following vector/matrix/vector
    multiplication:

                           T
       <b>vtmvg_c</b> = [   V1   ] |          |  |  |
                            |  MATRIX  |  |V2|
                            |          |  |  |

    by calculating over all values of the indices k and l from 1 to
    nrow and 1 to ncol, respectively, the expression

       <b>vtmvg_c</b> = Summation of ( v1(k)*matrix(k,l)*v2(l) ) .

    v1 is a column vector which becomes a row vector when transposed.
    v2 is a column vector.

    No check performed to determine whether floating point
    overflow has occurred.
</PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
    If  v1 = | 1.0 |  matrix = | 2.0  0.0 |  v2 = | 1.0 |
             |     |           |          |       |     |
             | 2.0 |           | 1.0  2.0 |       | 2.0 |
             |     |           |          |
             | 3.0 |           | 1.0  1.0 |

    nrow = 3
    ncol = 2

    Then the value of the function is  21.0.
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
    Since no error detection or recovery is implemented, the
    programmer is required to insure that the inputs to this routine
    are both valid and within the proper range.
</PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
    None.
</PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
    W.M. Owen       (JPL)
    E.D. Wright     (JPL)
</PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
   -CSPICE Version 1.0.0, 1-JUL-1999
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
   n-dimensional vector_transpose times matrix times vector
</PRE>
<h4>Link to routine vtmvg_c source file <a href='../../../src/cspice/vtmvg_c.c'>vtmvg_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:33 2010</pre>

</body>
</html>

